Communication system and method for sending asynchronous data and/or isochronous streaming data across a synchronous network within a frame segment using a coding violation to signify at least the beginning of a data transfer

ABSTRACT

A communication system, network interface, and communication port is provided for interconnecting a network of multimedia devices. The multimedia devices can send streaming and/or non-streaming data across the network. The network accommodates all such types of data and assigns data types to time slots or frame segments within each frame to ensure streaming data maintains its temporal relationship at the receiver consistent with the transmitter. A first coding violation is used to indicate the beginning of asynchronous or isochronous data placed within a segment reserved for such data. A second coding violation within the data stream may also be used to signify the end of the isochronous or asynchronous message or data transfer within that segment. Alternatively, a message length code may be placed within the first coding violation to signify how many valid packets of data will follow in lieu of, for example, using a second coding violation within the data stream sometime after the first coding violation.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] This invention relates to a communication system, such as anetwork of interconnected nodes for sending synchronous and asynchronousdata, and wherein isochronous streaming data and asynchronous data canbe sent within a segment of a frame using a coding violation to signifyat least the beginning of the isochronous or asynchronous data withinthat segment.

[0003] 2. Description of the Related Art

[0004] Communication systems are generally well-known as containing atleast two nodes interconnected by a transmission line. A node canfunction as a data source or destination. If the node is to receive andtransmit data, then the node is a combination of a source anddestination, and is sometimes known as a transceiver. The data sourcecan transmit data in various forms. For example, the source can transmitin either an analog or digital domain. Typically, however, an analogsignal is converted to a digital format before being transmitted acrossthe transmission line to the destination.

[0005] It is generally desirable that the transmission line accommodatenot only digital or analog data, but also data that can arrive indifferent forms, hereinafter known as “data types.” For example,sophisticated transmission protocols can accommodate streaming data,packetized data, and control data. Streaming data is generallyrecognized as data that has a temporal relationship between samplesproduced from a node. The relationship between those samples must bemaintained across the transmission line to prevent perceptible errors,such as gaps or altered frequencies. A loss in the temporal relationshipcan cause a receiver to present jitter, echo or, in the worst instance,periodic blanks in a voice or video stream. Converse to streaming data,packetized data is data which need not maintain the sample rate ortemporal relationship of that data and, instead, can be sent asdisjointed bursts across a transmission line. The packets of data can besent across the transmission line at virtually any rate at which thattransmission line transfers data and is not dependent in any fashion onany sampling frequency since packetized data is generally recognized asnon-sampled data.

[0006] In addition to streaming data and packetized data, another typeof data can be control data. Depending on how the control data is used(either in a streaming or packetized environment), control data may beeither time dependent or non-time dependent on the data or node in whichit controls. Moreover, streaming data can be considered as eithersynchronous data or isochronous data. Synchronous forms of streamingdata is data sent across the transmission line in sync with the rate bywhich the streaming data is sampled. However, it may be that thetransmission line transfers data at a different rate than the rate atwhich the node streams, or “samples,” data. In order to maintain thetemporal relationship between samples of the streaming data, isochronoustransfer protocols are needed to accommodate those differences in orderfor the isochronous data to be played at the destination withoutperceptible gaps, errors, jitter or echo.

[0007] An optimal transmission line can transfer different types ofdata. Coupled to the transmission line, which can be either copper wire,optical fiber, or wireless, are multiple nodes. Each node canaccommodate at least one multimedia device. For example, a telephonemultimedia device can be used to send and receive voice information and,depending on differences in sampling rate (i.e., “fs”) at the telephoneand the frame transfer rate (i.e., “FSR”) within the transmission line,the voice information can be either sent as isochronous data orsynchronous data. Depending on the relationship between the frame syncrate (FSR) and the sampling rate (fs) streaming data can be presented tothe transmission line as either synchronous data or isochronous data. Inany instance, control information can be sent to the multimedia deviceto set up the transmission or to control the receipt of the streaming(isochronous or synchronous) data. In addition to transmitting streamingand control data, the transmission line should also be able to transmitpacket information between computers. Packetized data includesexecutable programs and/or files sent as bursts of digital data acrossthe transmission line.

[0008] Multimedia devices operating as sources can therefore produce notonly different types of data in different forms, but also data that willarrive at the transmission line at different rates. For example, a voicefrom a telephone handset is a continuous stream of data having asubstantially constant average data rate and a temporal relationshipbetween the samples produced. The isochronous or synchronous forms ofstreaming data can, therefore, represent sounds (in the example of atelephone or CD player) or images (in the example of DVD player). Whiletelephones, CD players and DVD players send isochronous or synchronousstreaming data across a network, a computer sends bursts of packetsusually in TCP/IP form across the network.

[0009] A need exists in implementing a communication system that canaccommodate both streaming and non-streaming data transfers. Moreimportantly, an improved communication system is needed that can senddata sampled at a dissimilar rate than the transmission rate across thetransmission media, and can maintain the temporal and timed relationshipof that streaming data at a destination which reads the streaming datain real time. The desired communication system must, therefore, besynchronized to the transmission of various types of data at, orsubstantially near, the sampling rate of one or more multimedia devicesconnected to the transmission medium. The improved communication systemmust not simply accommodate both streaming and non-streaming data, butalso seamlessly accommodate isochronous and synchronous streaming dataamong a plurality of nodes operating as multimedia devices. In thisfashion, the desired communication system can efficiently transfer thedifferent data types synchronously across the network between devicesthat sample at the same rate as the frame rate or at a rate differentfrom the frame rate and, therefore, an improvement exists by not havingthe sampling rate dependent on the frame rate.

SUMMARY OF THE INVENTION

[0010] The problems outlined above are in large part solved by animproved communication system hereof. The communication system involvesnot only the network that extends between nodes, but also a transmitport and a receive port. The transmit and receive ports are found withinone or more of those nodes, and preferably in all the nodes. Acontroller within a port is intelligent in that it knows, based on atime-division multiplexed set of channels forwarded within the network,which channel to send to which device. If multiple devices are presentwithin a single node, then a network interface (having atransmit/receive port) dispatches the channel to the appropriate devicevia, e.g., a local bus. The channels are formed by creating a framestructure that repeats at the audio sampling rate of one or more devicesconnected to the network. Those devices, therefore, send synchronousstreaming data across a time-division multiplexed portion of the frame,with devices that sample at higher or lower frequencies sendingisochronous streaming data in another time-division multiplexed portionof the frame. The frames are repeated so as to account for the entirestreaming and/or non-streaming message or transaction.

[0011] The intelligent controller (at the receive port) not onlycontains a decoder which determines how to apportion the varioustime-division multiplexed segments, but also preferably contains acomparator (at the transmit port) which compares the frame sync rate tothe sample rate. If a difference exists, the comparator will signal thatpossibly an empty byte or bytes must be added periodically to anisochronous data transfer. Rate comparison is thereby used to note whento put in the empty byte or bytes, and the comparator will inform theencoder of such, whereupon the encoder then inserts the empty bytes intoone or more frames being transmitted across the network.

[0012] Routing tables broadcast to each node, possibly during a power-upsequence, will allocate the channels to the powered devices as well asany additional byte fields that may be needed to accommodate isochronousdata, for example. If the frame sync rate is different from the samplingrate, then the streaming data is said to be isochronous streaming data.In order to accommodate for a streaming rate that exceeds the framerate, an additional byte may be placed within the time-divisionmultiplexed segment attributed to isochronous data. At the receive port,in addition to a decoder, a switch apportions the decoded data and, ifthe data is isochronous, then the decoder can determine where, within asegment reserved for isochronous data, valid isochronous data exists.

[0013] According to one embodiment, a transmit port is provided. Theport includes a framer adapted for producing a sequence of frames. Atleast one of the frames of the sequence of frames is apportioned into atleast one frame segment containing a plurality of bytes of dataimmediately preceded by a coding violation within the frame segment. Thecoding violation signifies the beginning of the bytes of data withinthat segment as well as possibly other segments of successive frames.

[0014] The bytes of data allocated to a frame segment can be eitherisochronous data or asynchronous data. The coding violation is asequence of bits dissimilar from normally encoded data and, therefore,can contain a sequence of bits not recognized as bits of the encodeddata but as bits that signify the next byte field as the beginning ofthe plurality of bytes of data within the frame segment.

[0015] In addition to a coding violation signifying the beginning of thebytes of data, another coding violation might signify the ending of thebytes of data. The second coding violation, if used, will immediatelysucceed the last byte of data within an isochronous or asynchronous datatransfer. The coding violations used to signify the beginning and endingof the bytes of data can be an identical bit sequence or a dissimilarbit sequence, each of which, however, is purposely dissimilar from thebytes of data themselves.

[0016] In addition to a transmit port, a receive port is also provided.The transmit port and receive port can be found within a networkinterface such as between a local bus of interconnected devices and anetwork or, in the alternative, the transmit and receive ports can befound within a multimedia device itself.

[0017] In addition to a transmit and receive port, a communicationsystem is provided. The communication system, like the transmit andreceive ports, accommodates a frame segment within which a byte of datahaving a coding violation is placed. The coding violation signifies thebeginning of a data transfer and, possibly, the ending of a datatransfer.

[0018] According to yet another embodiment, a method is provided fortransmitting data. The method includes encoding the data and thereaftertransmitting the encoded data in a segment of a plurality of frames ofdata beginning with a coding violation within a first frame dissimilarfrom the encoded data. An additional byte can be added to the segment ifthe first frame is transferred across the network at a frame transferrate that is less than a sampling rate.

BRIEF DESCRIPTION OF THE DRAWING

[0019] Other objects and advantages of the invention will becomeapparent upon reading the following detailed description and uponreference to the accompanying drawings in which:

[0020]FIG. 1 is a block diagram of a communication system ofinterconnected nodes across which different types of data can be sent,such as streaming data (synchronous or isochronous), control data andpacket data (i.e., asynchronous);

[0021]FIG. 2 is a block diagram of a portion of a transmit and receiveport within one or more nodes of the communication system;

[0022]FIG. 3 is a block diagram of a port expanded to accommodateisochronous data sent from a device having a higher or lower sample ratethan the frame rate of the network;

[0023]FIG. 4 is a plan diagram of several successive frames of data,wherein each frame has a segment indicative of a time slot reserved forsending streaming isochronous data and at least one signaling bitpreceding the streaming data indicative of where the streaming data iswithin the frame, the length of the frame segment, and the order bywhich differing channels of streaming data is sent within the framesegment, etc.;

[0024]FIG. 5 is plan diagram of bits of data within a signaling byte ofdata, and the significance of the bits of data;

[0025]FIG. 6 is a plan diagram of successive frame segments of data andthe effect of the preceding signaling byte on the packing of isochronousdata within the timeslot dedicated for sending isochronous data;

[0026]FIG. 7 is a block diagram of a framer which packs data within aframe segment depending on differences between a sample rate of datastreaming from a device and a frame rate of data transmitted across anetwork;

[0027]FIG. 8 is a plan diagram, according to an alternative embodiment,of successive frame segments of data and the effect of using a codingviolation in the data stream to signal the beginning, the beginning andending, and/or the non-presence of an asynchronous (packet) datatransfer and/or isochronous data transfer within a frame segment; and

[0028]FIG. 9 is a state diagram of a decoder used to decode codingviolations which indicate where, within a frame segment, asynchronousand/or isochronous data exists according to the embodiment of FIG. 8.

[0029] While the invention is susceptible to various modifications andalternative forms, specific embodiments thereof are shown by way ofexample in the drawings and will herein be described in detail. Itshould be understood, however, that the drawings and detaileddescription thereto are not intended to limit the invention to theparticular form disclosed, but on the contrary, the intention is tocover all modifications, equivalents and alternatives falling within thespirit and scope of the present invention as defined by the appendedclaims.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0030] Turning now to the drawings, FIG. 1 illustrates one example of acommunication system 10. Communication system 10 includes aninterconnected plurality of nodes 12. For sake of brevity, only fournodes are shown. However, it is understood that system 10 can includemore than four nodes and can also include multiple interconnectednetworks. The network shown in FIG. 1 is a ring or loop. However, it isalso understood that the network backbone can be bus, star, or any othertopology available to a network. Coupled between nodes 12 arecorresponding transmission links 14. Transmission links 14 can beoptical, acoustic, or electrical (wired or wireless).

[0031] Each node 12 is preferably localized to a particular area. Withineach node is at least one multimedia device. As shown in node 12 d, anode can have more than one multimedia device 16. If more than onelocalized device 16 is present, then a local transmission line or localbus can be used between multimedia devices 16 in either a loop or bustopology as shown by the alternative phantom lines 17.

[0032] Connected between device 16 and the network of nodes 12 is anetwork interface 20. If multiple devices 16 are localized to a node 12,the network interface 20 is disposed between a local bus 17 and thenetwork. Interface 20 includes a communication port (i.e.,bi-directional transmit and receive port) for transmitting communicationbetween devices 16 arranged in nodes 12. The communication port can alsobe found within each of the multimedia devices 16 and, depending on itsconfiguration, includes a clock pin, one or two signal pins and at leastone data pin or a pair of data pins. As will be appreciated herein, thenetwork interface function can be placed within one or more multimediadevice 16 or the network interface can be separate from the multimediadevices. A multimedia device 16 can be found on a single monolithicsubstrate and the network interface can also be on a single monolithicsubstrate. Thus, the communication port can be found on, for example, amonolithic substrate of a network interface or on a monolithic substrateof a multimedia device that may or may not contain the networkinterface.

[0033] Preferably, network interface 20 includes a digital signalprocessor or controller that can be programmed, and can include a memorymedium operably linked to the execution unit of the processor.Multimedia device 16, one or more of which are found within a node, isany device that can send and/or receive multimedia signals. Such signalsinclude voice, audio, video, data files, or executable data programs.Examples of such devices include telephones, sensors, CD players, DVDplayers, video cameras, speakers, monitors, computers, personal digitalassistants (PDAs), frequency modulated stereos, navigational systems,etc.

[0034] According to one example, the multimedia devices can be locatedwithin an automobile, and the communication system 10 can be employedwithin the automobile for linking the multimedia devices to one anotheror to multimedia devices within other nodes of the same automobile, orto another automobile, a satellite, or a stationary base station.Depending on whether data is encrypted or encoded at the multimediadevice 16, communication system 10 allows transfer of such informationto the destination as either streaming data (synchronous orisochronous), control data, or asynchronous (packetized) data. Inaddition, communication system 10 can allow transfer of all four typesof data across one or more channels established within communicationline 14 or across local bus 17. Communication system 10 thereforeaccommodates the different types of data in order to add versatility tothe various types of multimedia devices 16 which can be used.

[0035] It is recognized that one or more multimedia devices 16 cansample data at a higher sampling rate (fs) than the frame sync rate(FSR) of transmission line 14. For example, multimedia device 16 may bea CD player that samples at approximately 44.1 KHz. The CD player canstream data at, for example, 16 bits per sample audio channel (32bits/stereo channel), therefore resulting in a bps Baud rate across thetransmission line of 32 bits/stereo sample×44.1 K samples/second=1.4112Mbps. The non-return to zero (“NRZ”) data from the device can be encodedin several ways. Data can also be encoded using, for example, the wellknown Miller encoding technique. Alternative encoding includes bi-phaseencoding, or encoding so that the encoded bit stream does not incur anaccumulated DC value. The latter encoding mechanism is oftentimesreferred to as DC-adaptive encoding, and is described in a commonlyassigned co-pending application, Ser. No. 09/710,220 entitled “AnEncoder Within a Communication System that Avoids Encoded DCAccumulation and can Use Coding Violations to Synchronize a Decoder andDetect Transmission Errors.”

[0036] If the frame sync rate (FSR) across transmission line 14 isdifferent than 48 KHz (e.g., FSR could be chosen to match a CD samplerate of 44.1 KHz), then the streaming data from the 48 KHz sampled DVDplayer cannot be placed synchronously through transmission line 14 toanother node (i.e., a speaker). Instead, the streaming data must beplaced as isochronous streaming data as opposed to synchronous streamingdata.

[0037] In addition to streaming data being asynchronous to the transferrate of transmission line 14, other types of data can also beasynchronous such as, for example, packetized data or control data. Ineach instance, however, the various data types are fed acrosstransmission line 14 in synchronous fashion. Communication system 10 istherefore a synchronous transmission system which accommodatesdissimilar data types sampled at dissimilar frequencies or data typesthat are placed in non-regular, non-temporal relationship with oneanother.

[0038]FIG. 2 illustrates in more detail a network interface 20 shown ina receive mode. The network interface 20 can, therefore, be thought of,in this example, as a receive port from a network and a transmit port toa network. Thus, network interface 20 can include its own device 16, aswell as port 24 that connects to the network and port 26 which connectsto, for example, a local bus 17. If multiple devices 16 are presentwithin a node, local bus 17 connects locally distributed devices 16 tothe controller of the network interface 20 all within, for example, asingle node 12. It is important to note, however, that each device 16can have its own port and that the controller of a network interface canbe within that device 16. Alternatively, if multiple devices are foundwithin a node, the network interface can be separate from each device.In each instance, however, either a device 16 or a network interface 20includes a port which interfaces with (i.e., transmits to or receivesfrom) the network. The port communicates using apportioned time slotsfor each data type and, if one of the data types carries isochronousdata, the port transports a signaling bit/byte within a time slotdedicated to the isochronous data, according to one embodiment, or acoding violation within the data stream of that time slot, according toanother embodiment. Details of each embodiment are set forth below.

[0039] Depending on the complexity of a node and whether a local bus isused, node 12 typically includes a network interface 20 (or port), whichhas a decoder 30, digital signal processor (“DSP”) 32, and a cross pointswitch 34. The network which extends between nodes 12 is a synchronousnetwork in that data is time-division multiplexed into a number ofchannels 36. For example, channels 36 are formed by creating a framestructure of 64 bytes that repeats at an audio sample rate of a deviceconnected to the network via a node. For instance, if the audio samplerate is 48 KHz, the total bit rate of the network between any two nodes12 is 48K frames/sec×64 bytes/frame×8 bits/byte=24.576 Mbits/sec.

[0040] The synchronization protocol for sending time slots as channels36 also calls for sending a preamble for each frame bifurcated into timeslots. The preamble includes synchronization (“SYNC”). Thus, in theabove example, 63 bytes can be used to communicate various types of dataat the frame sync rate (FSR). The types of data include streamingisochronous data, possibly placed into time slot 0 (TS0), synchronousstreaming data possibly placed within time slot 1 (TS1), andasynchronous packets of data possibly placed in time slot 2 (TS2).Another channel can be formed, possibly in time slot 3 (TS3) to receivecontrol information/data. Possibly two bytes of control may be reservedfor the control channel transmitted at TS3, as shown. When, for example,a device 16 is activated or powered-up, routing tables are broadcastacross the control channel to each of the other nodes within thenetwork. The control channel contains configuration (or reconfiguration)routing tables needed to accommodate data transfer between the newlyactivated device or devices. The routing table is therefore establishedto accommodate all of the various channels or frame portions establishedto receive the various types of data thereafter synchronously sentacross the network between activated devices 16.

[0041] The routing table within a memory medium of, for example, thedigital signal processor (“DSP”) 31 will then identify which byteswithin a frame is associated with a particular channel when subsequentcommunication is desired. Thus, for example, if a DVD is on one channeland a CD on another channel, then the routing table will actually assigntime slots to those channels. In this fashion, the DVD player will sendaudio and video information within a first channel, yet a CD player willsend audio information within a second channel allocated according totime slots. The routing tables within each node will also define whichnodes get which channels in order to define and apportion all thechannels from various sources to appropriate destinations. The channellength is, therefore, fixed and predefined as part of the routing tablefunction for streaming data in order to ensure that isochronous andsynchronous streaming data are sent within each frame to maintain itstemporal relationship.

[0042] Asynchronous data can have, for example, a variable channellength also established within the routing tables when, for example, acomputer connected to the network comes on-line. For example, if anisochronous transfer requires an additional byte within successiveframes, then the routing table will assign that byte when, for example,a high frequency sampled DVD player comes on-line and is activated to anetwork previously locked to a lower transfer frequency. Decoder 30recognizes and decodes the synchronization byte and forwards the controlbyte to the processor 31, which then updates the routing table withinthe corresponding node. The synchronization byte is forwarded to a timerwithin DSP 31, for example. The timer will ensure that the bytes sentacross the network are synchronized with the switch 34 in order toappropriately route data to the destination or target at appropriatelytimed byte boundaries.

[0043] The four time slots shown as reference 36 are applicable to asingle frame. It is understood, however, that multiple frames are sentin sequence. However, each frame maintains transmission of time slotsand channels according to the routing tables. As devices are broughton-line, the routing tables are updated and time slots are allocated.If, for example, on a single pair of devices are on-line, then possiblythe entire frame can be allocated to a single frame segment toaccommodate data transfers between those devices. However, if the datais streaming, the routing tables are defined to allocate at least oneframe segment across all frames sent within the network during timeswhen the streaming source is active. Thus, frame 36 can be repeated andis sent in sequence to decoder 30 from, for example, a source devicewithin a node on the network. Meanwhile, the channels of data aredecoded by decoder 30 and sent to switch 34.

[0044] Node 12 contains a receive and transmit port having a controller20 shown in the example configured as a receiver. However, it isunderstood that node 12 can transmit data as well. Thus, each node is atransceiver which functions as a cross point switch. Each cross pointswitch 34 within each transceiver routes one or more bytes within achannel of a particular time slot to the appropriate device 16 of areceived frame 36. Conversely, switch 34 can route any byte from port 26to a transmitted frame placed back upon the network. The cross pointswitch 34 can also route any received byte or channel to any transmittedbyte or channel. Switch 34 is thereby configured via the routing tableswhich were previously set up when devices 16 came on-line via thecontrol bytes sent via the control channel. Once switch 34 is configuredto send the bytes within a particular time slot to the appropriatedevice, streaming data (regardless of whether it is isochronous orsynchronous) simply flows from an output port of one device to an inputport of another device (or, for example, from input port 24 to theappropriate device 16 a-16 c via output port 26). For example, device 16a may receive synchronous streaming data, while device 16 b may receiveisochronous streaming data, and device 16 c may receive TCP/IPpacketized data. Switch 34 thereby routes the appropriate channels(i.e., data type) automatically to the corresponding device using thepredefined routing tables.

[0045] Since the network is synchronous, all nodes 12 operate at exactlythe same frequency. The clocks associated with the source device areoperating at exactly the same frequency as the destination devicewithout inappropriate gaps or jitter. Thus, even though the samplingrate of a source device may be different from the frame sync rate, theensuing isochronous data can be sent synchronously across the network atthe same rate as the network and, possibly, the same rate as other nodessampling at that rate. The destination address for the various channelswithin each byte are predefined in the routing tables such that datastreaming from a source is sent in real-time to the appropriatedestination.

[0046] It is recognized that by using time slots and prearranged channeladdressing, each node is guaranteed sufficient bandwidth to continuouslysend streaming data. Therefore, conventional headers and footersnormally applicable to sending packetized data across a computer networkare not needed. If, contrary to the present protocol, headers andfooters are needed for each channel, then as network traffic increases,each node's share of the bandwidth will decrease. At some point, a nodewill not have enough bandwidth to send the streaming data and there willbe gaps or jitter present on the audio, video, or voice stream. Contraryto these detriments, the improved data transfer protocol hereofguarantees bandwidth in each and every frame by pre-assigning data typesto channels within a time slot reserved for such data. Even if the framesync rate is dissimilar from the sampling rate, bandwidth is stillguaranteed for sending streaming data. Thus, when a phone call is madeor a CD player is turned on, the network provides an exact andguaranteed bandwidth until the end of the call or the end of the CD. Ifa lengthy phone call is being made or many CD or DVD drives are beingused, the connection is not made if there is not enough bandwidth.However, once a connection is made, the streaming data is guaranteed ofbeing sent in each frame of the synchronous network.

[0047]FIG. 4 illustrates the different bytes within each frame dividedinto synchronous streaming data 40, asynchronous packet data 42,isochronous streaming data 44, and asynchronous control data 46. Ofcourse, if it is known that the network will not carry packet data,then, for example, only three segments may apply. Yet, however, theframe segments for streaming data are pre-reserved. In some instances,maybe only one or two frame segments could apply. However, for sake ofexplanation, all four data types are shown in FIG. 4 apportionedaccording to time slots (TS). For example, there may be instances inwhich a telephone message is placed across the network and a CD playeris also active. Both the telephone and CD may be sampling data at thesame rate in which the network data is being clocked. In that case, twoframe segments are reserved within each frame for carrying synchronousdata. In this example, there certainly can be more than four time slots,with two or more time slots dedicated to receiving synchronous data and,possibly, another two or more dedicated to receiving isochronous dataif, for example, a pair of higher or lower sampling rate players can beactivated on the network. If a telephone call is being made but with allother devices inactive (e.g., the other synchronous CD device isinactive), then the time slot dedicated to channels of the telephonecall receive data with the frame dedicated solely to the telephoneinformation.

[0048] Each time slot can be rather small, such that possibly a timeslot can be as small as one byte, thereby allowing possibly 60 timeslots in a 60 byte frame. Sixty different channels, where possibly twoor more time slots can receive the same data type, yet carry data fromdifferent source devices to different destination devices, are thereforeavailable. The time slots and channel routing are all setup and reservedwithin each frame in application program software and through routingtables established whenever the various devices become active bypressing, for example, a start button on a DVD player, CD player,telephone, etc.

[0049] Time slots TS0-TS3 are shown merely as an example and areavailable as corresponding segments within each frame, beginning withframe N. A N number of bytes can be attributed to each segment. If,however, the network is operating at a lower frame sync rate than asample rate of a particular device, then possibly another byte will beneeded for the segment carrying isochronous data. A typical examplemight be a network locked to a CD operating at 44.1 KHz attempting toplace DVD drive information sampled at 48 KHz. In order to accommodatethe higher sampling rate of the DVD drive, an additional byte is placedwithin the isochronous segment of, for example, time slot TS2. However,if the converse occurs and the network is locked to a DVD operating at48 KHz and wants to place sampled data from a CD operating at 44.1 KHzupon the network, then, although the sample rate is dissimilar from theframe rate and, therefore, is classified as isochronous data, the CDinformation can be placed within the isochronous time slot withouthaving to add an additional byte.

[0050] It is, therefore, important to note the network locked raterelative to subsequent devices which come on-line to that network. Ifthe subsequent devices are sampled at the same rate as the networklocked rate, then the bytes of data can be sent synchronously. Yet,however, subsequent devices which sample at a higher or lower rate mustbe sent isochronously. Depending on whether the subsequent devices aresending synchronous or isochronous data, the data is allocated toparticular time slots by channels which are set up in the routing tablesof each node. Those time slots are pre-reserved so that each source anddestination device on the network can be accommodated to a time slotbased on the type of data being sent and, if more than two devices aresending and receiving the same type of data, two time slots can bepre-reserved for similar types of data.

[0051]FIG. 4 illustrates an example where the sampling rate exceeds theframe sync rate and, therefore, an additional byte is placed within theisochronous time slot. However, it is understood that if the samplingrate is less than the frame sync rate, an additional byte is not neededin the isochronous time slot. In every instance, however, the channelsset up with time slots are synchronously transferred relative to oneanother across the network as well as across the local bus (if a localbus is used). Regardless of the data type being sent, each channel ofdata sent across the network is transferred at the same rate. Thisallows the network to operate synchronously while accommodating what isnormally data that is sent asynchronously, or data that is sampled at ahigher or lower rate than the network transfer rate. Each time slot orchannel is thereby synchronous with one another. Transferring thechannel synchronously is implemented by allocating an additional byte tothe synchronous transfer of isochronous data. Thus, while theisochronous data is sent at the same transfer rate as the otherchannels, a signaling byte is used to identify which of the N bytes (ifthe sample rate is less than the frame sync rate) or N+1 bytes (if thesample rate if greater than the frame sync rate) in each frame arevalid. For example, if the network is operating at 48 KHz and it isdesired that a device sample onto the network at 44.1 KHz, then aminimum of 8×44.1/48 bytes/frame, or 7.35 bytes/per frame, are needed toaccommodate an 8 byte per frame isochronous channel. In the examplewhere N=8, a minimum of 8 bytes per frame are needed to accommodate thisisochronous data, yet only a portion of the 8 bytes in each frame areactually valid. The signaling byte 48 keeps track of which of thoseframes are valid and which are not.

[0052]FIG. 3 illustrates in more detail node 12 receiving, from anothernode having a DVD player, streaming data at a sample rate of 48 KHz.Yet, however, the network is locked to and transferring data at a framesync rate of 44.1 KHz established by data from a CD active on anothernode which samples at the same rate as the frame sync rate (i.e., 44.1KHz). Thus, the time slot attributed to receiving isochronous data mustbe extended by one byte, as shown by the extension of time slot 2 (TS2),noted as reference 52. Yet, however, time slot 0 (TS0) need not beextended to accommodate the synchronous streaming data from the CD. Thetime slots are compiled as they traverse the network and decoder 30decodes the coding attributed to the N or N+1 bytes of data sent fromthe source devices 16. Switch 34 then routes the channels to theappropriate devices 16.

[0053] In the example shown, audio information from, for example, theDVD player is converted to analog form and played on the left and rightspeakers at the same sample rate in which the DVD is played. The same isapplicable to the CD which is placed in analog form at the same rate inwhich the CD is played. The signaling byte keeps track of theisochronous data from the DVD player and the time slots apportion theDVD information separate from the CD information.

[0054]FIG. 5 illustrates one example of a signaling byte 58. Signalingbyte is placed in a byte location preceding an isochronous frame segmentof each frame. The most significant bit of byte 58 can either be a 1 or0. If the most significant bit location is a logic 1, as shown by byte58 a, then all of the other bit locations are irrelevant since the mostsignificant bit of logic 1 is decoded by decoder 30 to signify that allof the isochronous bytes contained within the time slot of theisochronous frame segment are invalid or empty. This means that theframe segment attributed to a frame preceded by signaling byte 58 a doesnot contain any isochronous data.

[0055] If, however, the most significant bit location is a logic 0, thenthe other bit locations have relevance. As shown by signaling byte 58 b,the most significant bit location can carry a logic 0 value, whereby theother bits, shown in the example of FIG. 5 as seven bits, signify thenumber of byte locations of the isochronous frame segment within thatcorresponding frame that are empty. For example, a logic 1 in the leastsignificant bit location of signaling byte 58 b (shown in FIG. 5)connotes that the last or least significant byte location of theisochronous frame segment is empty and contains no isochronous data. Ofcourse, other bit locations can carry a logic 1 value to indicate up topossibly 127 byte locations that are empty, beginning at the far rightbyte location or least significant byte location within the isochronousframe segment. Therefore, having seven bit locations which define howmany bytes are empty can accommodate an isochronous frame segment of upto 127 bytes.

[0056] Referring to FIG. 6, further details of how the signaling byteoperates as shown. FIG. 6, in conjunction with FIGS. 4 and 5, showdifferent methodologies for transporting isochronous streaming datawithin successive frames across the network. Each frame segmentattributed to the isochronous data can be either N bytes in length orN+1 bytes in length, depending on whether the sampling rate is less thanor greater than the frame sync rate at which the network is currentlylocked. In the methodology of reference 60, the signaling byte (“SIG”)can have a most significant bit of 0 and a remaining set of leastsignificant bits of 0 (“0/0”) in frame 0 to indicate the entire framesegment of N or N+1 bytes is not empty. However, at frame 4, while thesignaling byte most significant bit can remain at a logic 0 voltagevalue, the least significant bit can have a logic 1 value to indicatethe right-most or least significant byte location is empty and,therefore, does not contain isochronous data. Reference 60 thereby showsa signaling byte similar to signaling byte 58 b. It is understood,however, that the least significant bit can be greater than 1 toindicate possibly more than one byte location is empty, beginning at theright-most byte location and preceding to the left-most byte location.

[0057] Reference 62 illustrates a signaling byte similar to byte 58 a atframe 4. The signaling byte at frame 4 may have a most significant bitindicating a logic 1 value and “don't care” values in the leastsignificant bit locations. A logic 1 value in the most significant bitlocation will indicate that, for the corresponding frame segmentcontaining isochronous data, all of the byte locations within that framesegment for frame 4 are empty.

[0058] The examples shown in FIG. 6 can be for a DVD player sampling at48 KHz with four bytes per channel sent across a network that is lockedto a transfer rate of 44.1 KHz. This will require a 4×48/44.1, or 4.35bytes per frame to be allocated to the isochronous frame segment. Thus,if N=4, then an additional byte of five total bytes will be needed toaccommodate five samples onto four frames (i.e., samples 0, 1, 2, 3, 0beginning with frame 0, etc.). Since five samples have already beenaccommodated in four frames, the next frame in sequence (i.e., the fifthframe) can be entirely empty, as shown by reference 62.

[0059] The example of FIG. 6 illustrating an isochronous frame segmentof only five bytes is purely an example. N is not limited to four and,certainly, can be much larger than four upwards to possibly 127 since;indeed, the signaling byte can accommodate 1-127 empty byte locations.Moreover, if an ensuing source samples at a lower frequency than thelocked network transfer rate, then periodically the last byte of N bytes(instead of N+1) does not carry isochronous data, such as that shown inframe 4 of reference 60.

[0060]FIG. 7 illustrates possibly one way in which to detect differencesbetween the frame sync rate (FSR) from a network and a sampling rate(fs) from the device 16. A clock recovery circuit or slave unit 70 maybe used to detect the frame sync rate by detecting the synchronizationbit or byte at the beginning of each frame. The clock recovery circuitmight have, for example, a phase-locked loop. Comparator 72 may include,for example, a phase or frequency detector that compares differencesbetween the sample rate and the frame sync rate. If differences exist,then comparator 72 will determine how many empty bytes exist in a framesegment. Secondarily, comparator 72 could possibly be used in a broadersense by possibly noting that isochronous data is present. Preferably,however, comparator 72 is used to determine the number of empty bytes,and not whether or not isochronous data is present. The presence orabsence of isochronous data is generally already known and specifiedwhen an isochronous device comes on-line, and the transfer ofisochronous data is pre-established in the routing tables. The controlbyte or bytes within the preamble of the initiated device 16 willthereafter establish the routing functionality of the ensuingisochronous data and, depending on whether the sample rate exceeds or isless than the locked network transfer rate, an additional byte may beneeded, as shown by reference 82. Framer 74 is a part of the networkinterface or, if the network interface is placed on a device, forms apart of a multimedia device and, more particularly, forms thecommunication port of that device. The communication port is placed upona monolithic substrate which bears the multimedia device and/or networkinterface.

[0061]FIG. 8 illustrates an alternative embodiment where, essentially,the signaling byte is embedded within the data itself. In other words,the signaling byte is no longer placed before the corresponding segment,but is actually within the segment bearing data. The signaling byteexists as a coding violation and is attributed to either streamingisochronous data or asynchronous data (i.e., packet data). The codingviolation within the segment indicates where, within a segment, theisochronous or asynchronous data exists. As opposed to the signalingbyte being decoded as a positive, negative, or 0 value preceding thesegment, coding violations are decoded as a bit sequence which is notthe normal bit sequence of data.

[0062] Reference 77 illustrates a coding violation (“V”) placed within aframe segment which carries isochronous or asynchronous data. The codingviolation, when decoded, signifies the next byte location to be thebeginning of a series of bytes which occupy that frame segment as wellas one or more successive frame segments until the end of that messagehas arrived. In the example shown, the message is 8 bytes long, frombyte 0 through byte 7. Thus, the message may be a word or phrase of atelephone conversation or a CD or DVD output. Thereafter, another codingviolation may exist in, for example, the third frame segment of thesuccessive frames to signify the beginning of the next message which maythereafter have an implicit ending. Reference 77 illustrates exampleswhere isochronous or asynchronous data is sent within a segment and amessage is initiated with a coding violation which continues for somedefined time thereafter.

[0063] Reference 79 illustrates an alternative methodology of usingcoding violations in the isochronous or asynchronous frame segment.Instead of indicating just the beginning of a message (i.e., thebeginning of the data transfer), a coding violation can be placedimmediately after the last byte within the data transfer which hasoccurred. Thus, the encoder places coding violations to signify thebeginning and the end of a data transfer. It is not until the nextcoding violation occurs will the next data transfer occur immediatelythereafter.

[0064] Reference 81 illustrates yet another example where codingviolations are used to fill-in gaps at byte locations between messagesor data transfers. In particular, the coding violations which signifyinvalid or absent data is used only in the transfer of isochronous data.This is due to asynchronous data channels normally being shared by nodesaccording to an arbitration scheme. The arbiter will grant mastership toone asynchronous device over that of another. If coding violations arebeing sent with asynchronous data from a master asynchronous device,then mastership will never be turned over to another asynchronous devicesince data transfer (valid and coding violation data) will neverterminate. Isochronous does not arbitrate for mastership. Instead,isochronous data must be sent in real-time and must be sent acrossframes as it is being sampled. Coding violations to signify empty orinvalid bytes of data within a continuous stream of isochronous dataoccurs within a channel dedicated to isochronous data. Isochronous datadoes not normally have a message length and, if a message length bytedoes not exist, then it is preferred that coding violations exist at thebeginning and end of the data transfer or that coding violations fillthe gaps between data transfers, as shown by reference 81.

[0065] The coding violation is code that is not recognizable as dataand, when decoded, will indicate that isochronous or asynchronous datawill follow (references 77 and 79), or that isochronous data is notpresent between isochronous data transfers (reference 81). Preferably,coding violation bits are one byte long and, as stated above, is anyviolation at which data is not known to be coded. For example, abi-phase code is one where every logic 1 value has a logic 1 and a logic0 pair of symbols, yet a logic 0 value is coded where both symbols areeither a logic 0 or a logic 1 value. Typically, all data is coded and isplaced upon the network. To impart a coding violation would be to, forexample, include three symbols in a row having a logic 1 value or threesymbols in a row having a logic 0 value, to demarcate this violationfrom typical bi-phase coding, where the maximum amount of logic 1 orlogic 0 coded values is a two-symbol width. The decoder can, therefore,easily determine that the non-recognized data is a coding violation tosignify the beginning of data in the next byte location, the ending ofdata in the immediately preceding byte location, and/or absence of dataat the byte location containing the violation. For example, the firstportion of the violation can designate the coding violation and the lastportion of the byte designator of the coding violation can indicateeither the start of a particular data type or the end of a particulardata type.

[0066]FIG. 9 is a state diagram 84 of a decoder such as decoder 30 ofFIG. 2. The decoder may detect a coding violation (! DATA CODE) in whichcase the coding violation occurring when no data is being transferred(state 88), will signify that the next byte location is the start of anisochronous or asynchronous data transfer (state 86). Once at state 86,the decoder recognizes non-coding violations and normal data code and,based on routing tables, forwards the isochronous or asynchronous datato the appropriate destination device. In the case of streaming data(i.e., synchronous or isochronous) data is generally forwarded to alldevices based on the routing table.

[0067] While in start state 86, eventually the end of a message mayoccur, either by signifying the message length or having an implicitending naturally arise when the message is over, in which case thedecoder will detect and transition to an end state 88. If, for example,a coding violation is used to indicate the ending of a message or datatransfer, then that coding violation (! DATA CODE) will occur, similarto the methodology of reference 79 (FIG. 8). This will initiate the endstate 88. Once in end state 88, coding violations may occur at each bytelocation to signify the absence of isochronous data, as shown byreference 81 (FIG. 8). It is not until the last coding violationoccurring between data transfers that the next byte will be a valid datatransfer to then again initiate the start state 86.

[0068] The various mechanisms by which to signal the beginning of datawithin a particular channel or time slot includes a signaling byte (inthe instances where isochronous data is sent) or coding violationswithin a byte immediately preceding, immediately after, or in theinterim between, data being sent in an isochronous segment.

[0069] Numerous variations and modifications will become apparent tothose skilled in the art once the above disclosure is fully appreciated.It is intended that the following claims be interpreted to embrace allsuch variations and modifications.

What is claimed is:
 1. A transmit port, comprising: a framer adapted forproducing a sequence of frames; and wherein at least one frame of thesequence of frames is apportioned into at least one frame segmentcontaining a plurality of bytes of data immediately preceded by a codingviolation within the frame segment to indicate the beginning of thebytes of data.
 2. The transmit port as recited in claim 1, wherein thesegment is in the same byte location across each of the sequence offrames.
 3. The transmit port as recited in claim 1, wherein theplurality of bytes of data comprises a portion of a continuous stream ofdata sampled at a first rate and placed upon a network at a second ratedissimilar from the first rate.
 4. The transmit port as recited in claim1, wherein the plurality of bytes of data comprises a portion of anasynchronous packet of data.
 5. The transmit port as recited in claim 1,wherein each of the sequence of frames are time multiplexed into acorresponding sequence of frame segments, and wherein the codingviolation is within a first frame segment of a first frame within thesequence of frames followed by a continuous stream of data sampled at afirst rate dissimilar from a second rate at which the stream of data issent across the network or is followed by an asynchronous packet ofdata, either of which is within a plurality of frame segments thatfollow the first frame.
 6. The transmit port as recited in claim 1,further comprising an encoder coupled to the framer for encoding theplurality of bytes of data and placing the encoded data upon a network.7. The transmit port as recited in claim 6, wherein the coding violationcontains a sequence of bits dissimilar from the encoded data.
 8. Thetransmit port as recited in claim 6, wherein the coding violationcontains a sequence of bits recognized not as bits of the encoded databut as bits that signify the next byte field as the beginning of theplurality of bytes of data within the frame segment.
 9. The transmitport as recited in claim 1, wherein said frame segment is one of aplurality of frame segments allocated in time sequence across each of aplurality of frames.
 10. The transmit port as recited in claim 9,wherein said frame segment is allocated one byte more than at least someof the plurality of frame segments if the plurality of bytes of data issampled at a first rate greater than a second rate at which theplurality of frames of data are transmitted across a network.
 11. Thetransmit port as recited in claim 1, further comprising another codingviolation within the frame segment in a byte location immediatelysucceeding the plurality of bytes of data to indicate the ending of thebytes of data.
 12. The transmit port as recited in claim 11, whereinsaid coding violation and said another coding violation comprise anidentical bit sequence.
 13. The transmit port as recited in claim 11,wherein said coding violation and said another coding violation comprisea dissimilar bit sequence.
 14. A receive port, comprising: a decoderadapted to receive a plurality of bytes of data within a frame segmentof one frame of a sequence of frames; and wherein the plurality of bytesof data is preceded by a coding violation within the frame segment toindicate the beginning of the plurality of bytes of data.
 15. Thereceive port as recited in claim 14, wherein the segment is in the samebyte location across each of the sequence of frames.
 16. The receiveport as recited in claim 14, wherein the plurality of bytes of datacomprises a portion of a continuous stream of data sampled at a firstrate and received from a network which transmits at a second ratedissimilar from the first rate.
 17. The receive port as recited in claim14, wherein the plurality of bytes of data comprises a portion of anasynchronous packet of data.
 18. The receive port as recited in claim14, wherein each of the sequence of frames are time multiplexed into acorresponding sequence of frame segments, and wherein the codingviolation is within a first frame segment of a first frame within thesequence of frames followed by a continuous stream of data sampled at afirst rate dissimilar from a second rate at which the stream of data issent across the network or is followed by an asynchronous packet ofdata, either of which is within a plurality of frame segments thatfollow the first frame.
 19. The receive port as recited in claim 14,wherein the decoder is coupled to receive the plurality of bytes of dataas encoded data from a network.
 20. The receive port as recited in claim19, wherein the coding violation contains a sequence of bits dissimilarfrom the encoded data.
 21. The receive port as recited in claim 19,wherein the coding violation contains a sequence of bits recognized notas bits of the encoded data but as bits that signify the next byte fieldas the beginning of the plurality of bytes of data within the framesegment.
 22. The receive port as recited in claim 14, wherein said framesegment is one of a plurality of frame segments allocated in timesequence across each of a plurality of frames.
 23. The receive port asrecited in claim 22, wherein said frame segment is allocated one bytemore than at least some of the plurality of frame segments if theplurality of bytes of data is sampled at a first rate greater than asecond rate at which the plurality of frames of data are transmittedacross a network.
 24. The receive port as recited in claim 14, furthercomprising another coding violation in a byte location immediatelysucceeding the plurality of bytes of data to indicate the ending of thebytes of data within the frame segment.
 25. The receive port as recitedin claim 24, wherein said coding violation and said another codingviolation comprise an identical bit sequence.
 26. The receive port asrecited in claim 24, wherein said coding violation and said anothercoding violation comprise a dissimilar bit sequence.
 27. A communicationsystem, comprising: a transmitter configured to place data within asegment of a frame of data immediately preceded within the frame segmentby a byte of data having a coding violation that indicates the beginningof the data; a transmission medium coupled to the transmitter; and areceiver coupled to the transmission medium for forwarding to amultimedia device the data within the frame segment preceded by thecoding violation.
 28. The communication system as recited in claim 27,further comprising another coding violation in a byte locationimmediately succeeding the data to indicate the ending of the datawithin the frame segment.
 29. The communication system as recited inclaim 28, wherein said coding violation and said another codingviolation comprise an identical bit sequence.
 30. The communicationsystem as recited in claim 28, wherein said coding violation and saidanother coding violation comprise a dissimilar bit sequence.
 31. Amethod for transmitting data, comprising: encoding the data; andtransmitting the data in a segment of a plurality of frames of databeginning with a coding violation within a first frame dissimilar fromthe encoded data.
 32. The method as recited in claim 31, furthercomprising allocating an additional byte to the segment if the firstframe is transferred across a network at a frame transfer rate that isless than a rate in which the data is sampled at a device connected tothe network.
 33. The method as recited in claim 31, further comprisingcoding the coding violation with a sequence of bits recognized not asbits of the encoded streaming data but as bits that signify the nextbyte field as the beginning of the sampled data within the segment.